package com.demo.interceptor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 请求随机数缓存
 * @author gy
 */
@Service
public class NonceCache {

//    @Autowired
//    private RedisUtils redisUtils;
//
//    /**
//     * 检查 Nonce 是否已使用
//     *
//     * @param nonce 随机字符串
//     * @return true：已使用；false：未使用
//     */
//    public boolean isNonceUsed(String nonce) {
//        // 使用 redis 检查 Nonce 是否已存在
//        Boolean isUsed = redisUtils.setIfAbsent(nonce, "1");
//        return isUsed != null && !isUsed;
//    }
//
//    /**
//     * 记录 Nonce
//     *
//     * @param nonce 随机字符串
//     * @param expireTime 过期时间 单位：秒
//     */
//    public void recordNonce(String nonce, Integer expireTime) {
//        // 将 Nonce 存储到 Redis，并设置过期时间 60s
//        //每次HTTP请求，都需要加上timestamp参数，然后把timestamp和其他参数一起进行数字签名。
//        // 因为一次正常的HTTP请求，从发出到达服务器一般都不会超过60s，所以服务器收到HTTP请求之后，
//        // 首先判断时间戳参数与当前时间比较，是否超过了60s，如果超过了则认为是非法请求。
//        // 把这个 key 失效的时间和验证 timestamp 失效的时间一致，比如是 60s。
//        redisUtils.setForKey(nonce, "1", Long.parseLong(expireTime.toString()));
//    }
}
